package com.xialinrui.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xialinrui.dto.TodoCompletedDto;
import com.xialinrui.entity.Affair;
import com.xialinrui.entity.ResponseResult;
import com.xialinrui.entity.Todo;
import com.xialinrui.vo.TodoVo;

import java.sql.Date;
import java.util.List;

public interface TodoService extends IService<Todo> {


    /**
     * 保存
     * @param todoVo
     * @return
     */
    Long saveWithName(TodoVo todoVo);


    ResponseResult deleteTodo(Todo todo);

    void adjust(Todo todo);


    void changeComplete(Long todoId, Long affairId);

    List<Affair> getTodoInsertedList(Long id);

    void setIncomplete(Long id);

   List<Todo> getIncompleteTodoListWithOutDailyByCategoryId(Long id);

    List<Todo> getTodoListIncomplete();

    List<Todo> listDailyNotCompletedToday(Date date);

    List<Todo> listDailyCompletedToday(Date date);

    List<TodoCompletedDto> getCompletedTodoListWithOutDaily();


    List<Todo> getTodoListIncompleteDaily(Date date);

    void changeComplete(Long todoId, Long affairId, Long incomeId);

    Long getCompletedTodoIncomeId(Long id);

    Page<Todo> getIncompleteTodoListWithOutDailyByCategoryIdNotFolders(Page<Todo> page,Long id);

    List<Date> getAllDate();

    List<Todo> getIncompleteTodoListWithOutDailyByCategoryIdNotFoldersNoPage(Long id);

    void defaultAcquire(Long id, Double money, Integer love);
}
